CREATE INDEX
CREATE INDEX文は、表の1つ以上の列にTツリー索引を作成して、新しい索引に名前を割り当てます。Tツリー索引は、インメモリー・アプリケーション向けに設計された索引構造です。Tツリーには、次の特徴があります。
アクセス制御
TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。
SQL構文
CREATE [UNIQUE] INDEX [Owner.]IndexName ON
[Owner.]TableName ( { ColumnName [ASC | DESC] }
[, ... ] )
パラメータ
CREATE INDEX文には、次のパラメータがあります。
UNIQUE | 索引の重複を禁止します。UNIQUEを指定すると、索引キーの列値の各組合せは、その表の1行にのみ指定できます。UNIQUEを省略すると、値を重複させることができます。一意索引を作成する場合、既存のすべての索引付きの列の値は一意である必要があります。 |
[Owner.]IndexName | 新しい索引に割り当てる名前。表の2つの索引に同じ名前を付けることはできません。所有者を指定する場合、表の所有者と同じ名前を指定する必要があります。 |
[Owner.]TableName | 索引を作成する表を指定します。 |
ColumnName | 索引キーとして使用する列の名前。主索引キーから補助索引キーの順に、最大16列を指定できます。 |
ASC | DESC | 索引の順序を昇順(デフォルト)または降順で指定します。現在、TimesTenではこのパラメータは無視されます。 |
説明
- CREATE INDEX文は、索引の定義をシステム・カタログに追加して、必要なデータ構造を初期化します。表の行はすべて索引に追加されます。TimesTenでは、表を作成し、索引を指定してからデータを追加した場合と、表を作成し、データを追加してから索引を指定した場合のパフォーマンスの違いはありません。
- UNIQUEを指定した場合、索引付けされた列の既存の行の値はすべて一意である必要があります。
- 新しい索引は、DROP INDEX文を使用して索引を削除するか、その索引に関連付けられた表を削除しないかぎり自動的にメンテナンスされます。
- 準備された文が新しく索引付けされた表を参照している場合、その文を次回に実行する際に自動的に再度準備されます。これにより、文は新しい索引を活用することができます。
- ソート処理では、NULLは最も大きな値としてソートされます。
- NCHAR列およびNVARCHAR列には、Tツリー索引を作成できます。ただし、NCHAR型のデータとNVARCHAR型のデータの順序に関する一般的な制限のため、これらは等価検索でのみ使用できます。これらのデータ型の列で範囲検索を実行することはできません。
- 他の接続が所有する空でないインスタンスが一時表にある場合、別の接続によって一時表に索引を作成することはできません。
例13.27
この一意索引によって、部品の番号はすべて一意になります。
関連項目
DROP INDEX